import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Clase del jugador durante el juego
 * 
 * @author morales ibarra ivan israel
 */
public class Jugador extends Personaje
{
    private GreenfootImage[] j;
    private int i;
    private int d;
    private int u;
    private int a;
    private int dw;
    /**
     * Constructor de la clase Jugador
     */
    public Jugador()
    {
        d=0;
        i=10;
        u=20;
        dw=24;
        j=new GreenfootImage[30];
        j[0]=new GreenfootImage("Mder0.png");
        j[1]=new GreenfootImage("Mder1.png");
        j[2]=new GreenfootImage("Mder2.png");
        j[3]=new GreenfootImage("Mder3.png");
        j[4]=new GreenfootImage("Mder4.png");
        j[5]=new GreenfootImage("Mder5.png");
        j[6]=new GreenfootImage("Mder6.png");
        j[7]=new GreenfootImage("Mder7.png");
        j[8]=new GreenfootImage("Mder8.png");
        j[9]=new GreenfootImage("Mder9.png");
        j[10]=new GreenfootImage("Mizq0.png");
        j[11]=new GreenfootImage("Mizq1.png");
        j[12]=new GreenfootImage("Mizq2.png");
        j[13]=new GreenfootImage("Mizq3.png");
        j[14]=new GreenfootImage("Mizq4.png");
        j[15]=new GreenfootImage("Mizq5.png");
        j[16]=new GreenfootImage("Mizq6.png");
        j[17]=new GreenfootImage("Mizq7.png");
        j[18]=new GreenfootImage("Mizq8.png");
        j[19]=new GreenfootImage("Mizq9.png");  
        j[20]=new GreenfootImage("Mup1.png");
        j[21]=new GreenfootImage("Mup2.png");
        j[22]=new GreenfootImage("Mup3.png");
        j[23]=new GreenfootImage("Mup4.png");        
        j[24]=new GreenfootImage("Mdown1.png");
        j[25]=new GreenfootImage("Mdown2.png");
        j[26]=new GreenfootImage("Mdown3.png");
        j[27]=new GreenfootImage("Mdown4.png");

    }

    
    /**
     * actua en el escenario
     */
    public void act() 
    {
            super.mueve(this.checaTecla(),j,d,i,u,dw);
            this.checaBonus();          
    }    
   
    /**
     * verifica la tecla que se esta presionando
     *
     * @return     regresa la direccion correspondiente a la tecla que se presiono
     */
    public int checaTecla()
    {
        int res=4;
         if(Greenfoot.isKeyDown("right"))
         {
             res=DER;
             d++;
             d=super.checaIndice(8,d,0);
         }
         
         else if(Greenfoot.isKeyDown("left"))
         {
             res=IZQ;
             i++;
             i=super.checaIndice(18,i,10);
         }
         else if(Greenfoot.isKeyDown("up"))
         {
             res=UP;
             u++;
             u=super.checaIndice(23,u,20);
         }
         
         else if(Greenfoot.isKeyDown("down"))
         {
             res=DOWN;
             dw++;
             dw=super.checaIndice(27,dw,24);
         }
        return res;
    }

    /**
     * verifica si se esta haciendo contacto con un bonus
     *
     */
    public void checaBonus()
    {
        Actor auxD=getOneObjectAtOffset(0,0,Bonus.class);        
        if(auxD!=null)
        {
           Plataforma world=(Plataforma)getWorld();
           (world.dameBonus()).aumentaContador();
           world.removeObject(auxD);
           if((world.dameBonus()).dameValor()==3)
           {
               world.cambiaNivel();
            }
        }   
    }
    
    /**
     * inicia la posicion en el escenario
     *
     */
    public void iniciaPos()
    {
        setLocation(50,130);
    }


}
